﻿namespace ScrumLite.Services
{
    using System;
    using Contracts;
    using System.ServiceModel;

    [ServiceContract]
    public interface IDeliverablesService
    {
        [OperationContract]
        Deliverable[] GetDeliverables(string projectId);

        [OperationContract]
        Deliverable GetDeliverable(string id);

        [OperationContract]
        int GetNextMoniker(string projectId);

        [OperationContract]
        Guid GetDeliverableByMoniker(string projectId, int moniker);

        [OperationContract]
        Deliverable[] GetDeliverablesByWorkArea(WorkArea workArea);

        [OperationContract]
        WorkArea[] GetWorkAreas(string deliverableId);

        [OperationContract]
        void Add(string projectId, Deliverable deliverable);

        [OperationContract]
        void Update(string projectId, Deliverable deliverable);
    }
}
